package com.yhh.college_information_platform.service;

import com.yhh.college_information_platform.common.PageResult;
import com.yhh.college_information_platform.dto.SearchDTO;
import com.yhh.college_information_platform.vo.ResourceVO;

import java.util.List;

/**
 * 搜索Service接口
 *
 * @author yhh
 * @date 2025-10-26
 */
public interface SearchService {

    /**
     * 全局搜索资料
     *
     * @param searchDTO 搜索条件
     * @param userId 用户ID（可为null）
     * @return 搜索结果
     */
    PageResult<ResourceVO> searchResources(SearchDTO searchDTO, Long userId);

    /**
     * 保存搜索历史
     *
     * @param userId 用户ID
     * @param keyword 搜索关键词
     * @param resultCount 结果数量
     */
    void saveSearchHistory(Long userId, String keyword, Integer resultCount);

    /**
     * 获取用户搜索历史
     *
     * @param userId 用户ID
     * @param limit 限制数量
     * @return 搜索历史列表
     */
    List<String> getUserSearchHistory(Long userId, Integer limit);

    /**
     * 删除用户搜索历史
     *
     * @param userId 用户ID
     * @param keyword 关键词（为null则删除全部）
     */
    void deleteSearchHistory(Long userId, String keyword);

    /**
     * 获取热门搜索关键词
     *
     * @param limit 限制数量
     * @return 热门关键词列表
     */
    List<String> getHotKeywords(Integer limit);
}

